package com.donleo.security.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.donleo.security.model.Permission;
import com.donleo.security.model.User;
import com.donleo.security.vo.UserVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author liangd
 * @since 2021-01-15 17:32
 */
public interface UserMapper extends BaseMapper<User> {

    /**
     * 根据code查用户
     */
    List<User> getUserByCode(String code);

    /**
     * 根据用户编号查询权限
     */
    List<Permission> getPermissionsByUserCode(String userCode);

    /**
     * 查询所有
     */
    List<User> findAll(UserVo userVo);

    /**
     * 统计条数
     */
    long getCount(UserVo userVo);

    /**
     * 单个查询
     */
    User findById(Integer userId);

    /**
     * 根据角色编号查用户
     */
    List<User> findUserByRoleCode(String roleCode);

    /**
     * 根据用户编号查询
     */
    User findByCode(String code);

    /**
     * 根据角色编号查用户
     */
    List<User> findByTeam(@Param("teamCode") String teamCode,
                          @Param("pageNum") Integer pageNum,
                          @Param("pageSize") Integer pageSize);

    /**
     * 统计条数小组成员条数
     */
    long getCountByTeamCode(@Param("teamCode") String teamCode);

    /**
     * 查询未分组的用户
     */
    List<User> findUngroupedUser();
}
